Micron Document
Livres et Wikis | Archives | Info


JavaScript
part 8/19 Β· 71.4 KB total
layout: Wide Β· Narrow Β· Centered
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
GΓ©nΓ©ralement, JavaScript sert Γ  contrΓ΄ler les donnΓ©es saisies dans des formulaires HTML, ou Γ  interagir avec le document HTML via l'interface Document Object Model, fournie par le navigateur (on parle alors parfois de HTML dynamique ou DHTML). Il est aussi utilisΓ© pour rΓ©aliser des applications dynamiques, des transitions, des animations ou manipuler des donnΓ©es rΓ©actives, Γ  des fins ergonomiques ou cosmΓ©tiques.

JavaScript n'est pas limitΓ© Γ  la manipulation de documents HTML et peut aussi servir Γ  manipuler des documents SVG, XUL et autres dialectes XML.

IntΓ©gration

Il existe plusieurs faΓ§ons d’intΓ©grer JavaScript dans du code html:

β€’ Dans des attributs d’évΓ¨nements html : <button onclick="alert('clic !')">clic ici</button>. Le code JavaScript alert('clic !')sera exΓ©cutΓ© quand le bouton sera cliquΓ©.
β€’ Dans des balises <script> : <script>//ici on peut mettre du code JavaScript</script>
β€’ Dans des fichiers externes : <script src="chemin/ver/mon/fichier.js"></script>

IncompatibilitΓ©

Netscape et Microsoft (avec JScript dans Internet Explorer jusqu'à la version 9) ont développé leur propre variante de ce langage qui chacune supporte presque intégralement la norme ECMAScript mais possède des fonctionnalités supplémentaires et incompatibles, rarement utilisées dans le cadre de la programmation de pages web. Pourtant les scripts JavaScript sont souvent la source de difficultés. Elles sont plus souvent dues à la prise en charge des différentes versions des modèles d'objets (DOM) fournis par les navigateurs, qu'à des problèmes de portabilité du langage (les différentes mises en œuvre respectant relativement bien la norme ECMAScript).

Pour vérifier dynamiquement si un objet (dans la version JavaScript utilisée lors de l'interprétation) possède bien une méthode, on utilise souvent une construction du type :

if (monObjet.methode && typeof monObjet.methode === 'function') {
monObjet.methode();
}

On vérifie ainsi que monObjet a bien une mise en œuvre de methode que l'on peut alors utiliser. Le plus souvent, si un navigateur ne gère pas la methode de monObjet, il gère une méthode comparable methode2, et on peut alors adapter le code JavaScript au navigateur qui l'exécute :

if (typeof monObjet.methode === 'function') {
monObjet.methode();
} else if (typeof monObjet.methode2 === 'function') {
monObjet.methode2();
}

Une autre mΓ©thode consiste Γ  vΓ©rifier, cΓ΄tΓ© serveur, le navigateur utilisΓ© par le client et d'envoyer le code correspondant. Cela n'est toutefois pas recommandable, car il est largement prΓ©fΓ©rable de tester directement l'existence, le comportement d'une fonction, d'une propriΓ©tΓ©, etc. plutΓ΄t que de faire des prΓ©somptions basΓ©es sur la dΓ©tection du navigateur.

Ajax


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────